package com.cf.dao.db;

import com.alibaba.druid.pool.DruidDataSource;
import javax.sql.DataSource;
import javax.annotation.PostConstruct;  // 使用 @PostConstruct 注解

public class BaseDao {
    private static DruidDataSource dataSource = new DruidDataSource();

    static {
        // 初始化数据源配置
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://123.60.90.253:3306/huaban?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC");
        dataSource.setUsername("huaban");
        dataSource.setPassword("root123456");

        // 连接池配置
        dataSource.setInitialSize(1);    // 初始连接数量
        dataSource.setMaxActive(100);      // 最大连接数
        dataSource.setMaxWait(60000);     // 最大等待时间，单位：毫秒
        dataSource.setMinIdle(10);        // 最小空闲连接数

        // 设置空闲连接回收策略
        dataSource.setMinEvictableIdleTimeMillis(60000); // 最小空闲时间，超过时间会被回收
        dataSource.setTimeBetweenEvictionRunsMillis(30000); // 定期检查空闲连接的时间间隔
    }

    @PostConstruct  // 确保在对象初始化后创建数据源
    public void init() {
        // 任何其他初始化操作
    }

    // 返回数据源实例
    protected DataSource getDataSource() {
        return dataSource;
    }
}
